#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>


@interface FWDetailListEntry : NSObject
{
}

@property (retain) NSString* title;
@property (retain) NSString* message;
@property (retain, nonatomic) id value;
@property (retain, nonatomic) id key;
@property (retain) NSString* info;
@property (assign, getter=isNotBold) BOOL notBold;
@property (assign) CGFloat size;
@property (retain) UIImage* icon;
@property (assign) NSInteger lines;
@property (retain) UIColor* color;
@property (retain) UIColor* backgroundColor;
@property (retain) UIView* accessoryView;
@property (assign, getter=isProgress) BOOL progress;
@property (assign, getter=isSwitcher) BOOL switcher;
@property (assign, getter=isSelected) BOOL selected;
@property (assign, getter=isLink) BOOL link;
@property (assign, getter=isBackLink) BOOL backLink;
@property (assign, getter=isButton) BOOL button;
@property (assign, getter=isDraggable) BOOL draggable;
@property (assign, getter=isColorAccessory) BOOL colorAccessory;


+ (FWDetailListEntry*)entryWithTitle:(NSString*)newTitle;
+ (FWDetailListEntry*)entryWithTitle:(NSString*)newTitle value:(NSObject*)newValue;

+ (FWDetailListEntry*)entryWithLocalisedTitle:(NSString*)newTitle bundle:(NSBundle*)bundle;
+ (FWDetailListEntry*)entryWithLocalisedTitle:(NSString*)newTitle value:(NSObject*)newValue bundle:(NSBundle*)bundle;
+ (FWDetailListEntry*)entryWithLocalisedTitle:(NSString*)newTitle localisedValue:(NSString*)newValue bundle:(NSBundle*)bundle;

+ (CGFloat)fontSizeForTitle;

- (BOOL)isControl;

- (FWDetailListEntry*)withProgressType;
- (FWDetailListEntry*)withLinkType:(id)newKey;
- (FWDetailListEntry*)withBackLinkType:(id)newKey;
- (FWDetailListEntry*)withDraggableType:(id)newKey;
- (FWDetailListEntry*)withButtonType:(id)newKey;

- (FWDetailListEntry*)withNoBold;
- (FWDetailListEntry*)withBackgroundColor:(UIColor*)newColor;
- (FWDetailListEntry*)withColor:(UIColor*)newColor;
- (FWDetailListEntry*)withSize:(CGFloat)newSize;
- (FWDetailListEntry*)withLines:(NSInteger)newLines;
- (FWDetailListEntry*)withValue:(NSObject*)newValue;
- (FWDetailListEntry*)withKey:(id)newKey;
- (FWDetailListEntry*)withIcon:(UIImage*)newIcon;
- (FWDetailListEntry*)withIconFile:(NSString*)newIcon;
- (FWDetailListEntry*)withAccessoryView:(UIView*)newView;
- (FWDetailListEntry*)withColorAccessoryView:(UIView*)newView;

@end
